package com.lib.common.widget.dialog

import android.content.Context
import android.text.SpannableStringBuilder
import android.text.method.LinkMovementMethod
import android.text.style.ForegroundColorSpan
import androidx.databinding.DataBindingUtil
import com.lib.common.R
import com.lib.common.constant.H5UrlConstant
import com.lib.common.constant.INTENT_KEY_TITILE
import com.lib.common.constant.INTENT_KEY_URL
import com.lib.common.constant.RouterPathConstant
import com.lib.common.databinding.WidgetAgreementDialogBinding
import com.lib.common.helper.arouter.ARouterHelper
import com.lib.framework.widget.WidgetUtil
import com.lib.framework.widget.dialog.BaseDialog

/**
 * 协议对话框
 *
 * @author keanbin
 */
class AgreementDialog(context: Context) : BaseDialog(context, R.style.defaultDialogTheme03) {

    private var mDataBinding: WidgetAgreementDialogBinding? = null

    var mCallback: Callback? = null

    init {
        initView()

        setCanceledOnTouchOutside(false)
        setCancelable(false)
    }

    /**
     * 初始化视图
     */
    private fun initView() {
        mDataBinding = DataBindingUtil.inflate(layoutInflater, R.layout.widget_agreement_dialog, null, false)
        mDataBinding?.let { dataBinding ->
            setContentView(dataBinding.root)

            val text = "感谢您信任并使用冲蛙陪玩！\n\n" +
                    "我们依据相关法律制定了《用户服务协议》 和 《隐私政策》，我们非常重视您的个人信息和隐私保护，您可以通过《隐私政策》详细了解我们如何收集、使用、保护您的个人信息。在您使用冲蛙陪玩服务之前，请您仔细阅读各项条款。我们将严格按照经您同意的各项条款使用您的个人信息，以便为您提供更好的服务。"

            val spannableStringBuilder = SpannableStringBuilder()
            spannableStringBuilder.append(text)

            val colorSpan = ForegroundColorSpan(0xff333333.toInt())
            WidgetUtil.setTextSpan(spannableStringBuilder, mutableListOf(colorSpan), "感谢您信任并使用冲蛙陪玩！", 0)

            WidgetUtil.setClickText(spannableStringBuilder, "《用户服务协议》", 0, 0xffFFC800.toInt()) {
//                ARouterHelper.buildPostcard(RouterPathConstant.PATH_WEB_VIEW)
//                    .withString(INTENT_KEY_TITILE, "用户服务协议")
//                    .withString(INTENT_KEY_URL, H5UrlConstant.sUserAgreementUrl)
//                    .navigation()
            }

            WidgetUtil.setClickText(spannableStringBuilder, "《隐私政策》", 0, 0xffFFC800.toInt()) {
//                ARouterHelper.buildPostcard(RouterPathConstant.PATH_WEB_VIEW)
//                    .withString(INTENT_KEY_TITILE, "隐私政策")
//                    .withString(INTENT_KEY_URL, H5UrlConstant.sPrivacyUrl)
//                    .navigation()
            }

            dataBinding.tvAgreement.movementMethod = LinkMovementMethod.getInstance()
            dataBinding.tvAgreement.text = spannableStringBuilder

            dataBinding.tvAgreed.setOnClickListener {
                cancel()
                mCallback?.onAgreed()
            }
        }
    }

    interface Callback {

        /**
         * 同意
         */
        fun onAgreed()

        /**
         * 不同意
         */
        fun onNoAgreed()
    }
}